package io.github.wslxm.springbootplus2.manage.sys.service;


import io.github.wslxm.springbootplus2.core.base.model.BasePage;
import com.baomidou.mybatisplus.extension.service.IService;
import io.github.wslxm.springbootplus2.manage.sys.model.dto.SysRoleDTO;
import io.github.wslxm.springbootplus2.manage.sys.model.entity.SysRole;
import io.github.wslxm.springbootplus2.manage.sys.model.query.SysRoleQuery;
import io.github.wslxm.springbootplus2.manage.sys.model.vo.SysRoleVO;

/**
 * 角色
 *
 * @author 王松
 * @WX-QQ 1720696548
 * @date 2019/11/13 15:10
 */
public interface SysRoleService extends IService<SysRole> {


    /**
     * 列表查询
     *
     * @param query query
     * @return com.baomidou.mybatisplus.core.metadata.BasePage<io.github.wslxm.springbootplus2.manage.admin.model.vo.RoleVO>
     * @version 1.0.0
     */
    BasePage<SysRoleVO> findPage(SysRoleQuery query);


    /**
     * 添加角色-默认有所有URL 权限
     *
     * @param dto dto
     * @return java.lang.String
     * @version 1.0.0
     */
    String insert(SysRoleDTO dto);


    /**
     * 编辑角色信息
     *
     * @param id  id
     * @param dto dto
     * @return java.lang.Boolean
     * @version 1.0.0
     */
    Boolean upd(String id, SysRoleDTO dto);


    /**
     * 删除角色并删除角色关联的  (权限+菜单+用户) 的关系数据
     *
     * @param roleId roleId
     * @return boolean
     * @version 1.0.0
     */
    boolean del(String roleId);


    /**
     * 获取超管角色数据
     *
     * @return io.github.wslxm.springbootplus2.manage.admin.model.entity.Role
     * @version 1.0.0
     */
    SysRole findSysRole();

}